1. Field of the Invention
The present invention relates to a disk array controller for enabling data to be stored in a plurality of hard disk drives.
2. Description of Related Art
Improvement of the processing performance of computer systems is always expected and much efforts have been done to meet such a user's demand, especially to improve the I/O performance of disk subsystems (hereinafter, to be referred to simply as subsystems) that use magnetic disks as recording media. The I/O performance of the magnetic disks is said to be 3 to 4 figures lower than that of the semiconductor memory devices. One of the methods for improving the I/O performance of such a subsystem is to configure the subsystem by a plurality of hard disk drives and store data in those magnetic disks in parallel. The method is well known as a disk array system.
There is such a disk array controller realized by a conventional technique. A disk array controller denoted with reference number 2, as shown in FIG. 2, comprises a host computer 50, a plurality of channel interface units 11, each of which transfers data between itself 2 and a host computer 50, a plurality of disk interface units 12, each of which transfers data between itself 2 and a hard disk drive 5, a plurality of cache memory units 14 for storing data of a plurality of disk drives 5 temporarily, and a plurality of shared memory units 13 for storing control information related to itself 2 (e.g., information related to controlling of data transfer between channel interface units 11 and cache memory units 14 and management information of data to be stored in the hard disk drives 5). In the disk array controller 2, the shared memory units 13/cache memory units 14 can be accessed from all the channel interface units 11/all the disk interface units 12 respectively. Furthermore, in this disk array controller 2, the channel interface units 11/disk interface units 12 and the shared memory units 13 are connected to each other and the channel interface units 11/disk interface units 12 and the cache memory units 14 are connected to each other through interconnection networks 21 and 22 respectively.
Each channel interface unit 11 has an interface with a host computer 50 and a microprocessor, not shown, for controlling the input/output to/from the host computer 50. Each disk interface unit 12 has an interface with a hard disk drive 5 and a microprocessor, not shown, for controlling the input/output to/from the hard disk drive 5. Each disk interface unit 12 executes the RAID function.
In this conventional disk array controller 2, the capacity of the disks to be connected to one disk array 5 controller 2 is limited. If one disk array controller 2 is to record data over the capacity limit, the disk array controller 2 must be increased to two or more and the host computer 50 is connected to those controllers 2.
If one disk array controller 2 is to be connected to a plurality of host computers 50 over the number of its channels, the disk array controller 2 must be increased to two or more and each disk array controller 2 is connected to those host computers 50.
For data transfer between two data array controllers 2, channels from the host computers 50 are connected to the two disk array controllers 2 and data is transferred via the host computers 50.
U.S. Pat. No. 5,680,640 discloses a disk array controller configured as shown in FIG. 3. According to this technique, if data is transferred between two disk array controllers 3 as shown in FIG. 3, some of the interfaces (two interfaces in FIG. 3) with the host computers 50 are used as data transfer paths 8 between the two disk array controllers 3, so that data from a hard disk drive 5 connected to one disk array controller 3 is transferred to another hard disk drive 5 connected to the other disk array controller 3 through a data transfer path 8.
There is also a plurality of disk array controllers 4 (two in FIG. 4) connected to each other through their channel interface units 11 connected to an interconnection network 23 respectively as shown in FIG. 4. The interconnection network 23 functions as an interface with host computers 50. Consequently, even if data is to be recorded in one disk array controller 4 over a predetermined upper limit of capacity or even if host computers 50 are to be connected to one disk array controller over a predetermined number of channels, the number of disk array controllers or host computers may be increased.
JP-A No. 256003/2001 also discloses a disk array controller 1 that is configured as shown in FIG. 5. In the controller 1, a plurality of disk array control units 1-1 are connected to each another through an interconnection network 21 to which channel interface units 11, disk interface units 12, and shared memory units 13 are connected, as well as through an interconnection network 22 to which channel interface units 11, disk interface units 12, and cache memory units 14 are connected. Consequently, the disk array controller 1 functions as a single apparatus.
It has been demanded increasingly to realize a small configuration (small housing) advanced disk array controller with high reliability similarly to a large scale/high end disk array controller. And, along with the expansion of the open market in recent years and the spread of storage area networks (SAN) to be expected in the future, the advanced disk array controller is expected to be expanded in accordance with an increase of data to be stored.
Additionally, there also has arisen a strong and growing demand for a disk array controller, which, when it is employed newly, can be managed together with the existing one integrally and the performance degradation to be caused by the interconnection between the existing and new controllers is suppressed so as to make good use of the existing controller.
According to the conventional technique shown in FIG. 2, the number of disk array controllers 2 can be simply increased to increase the number of channels to be connected to host computers 50 and the total recording capacity. And, the conventional technique enables the use of existing disk array units. In such a case, however, data comes to be stored in two or more disk array controllers 2 sometimes and each host computer 50 must know the target disk array controller 2 to which a magnetic disk 5 that stores access data is connected. And, the host computer 50 must also know each of the connected disk array controllers individually to manage files therein. If the number of disk array controllers 2 is to be increased in accordance with system expansion, each host computer 50 might meet many problems that are difficult to be solved, such as reinstallation of the management software, etc.
Furthermore, according to the conventional technique shown in FIG. 3, the number of disk array controllers can be increased easily, since two disk array controllers 3 are already connected to each other through two data transfer paths 8. Each host computer 50 can be connected to the other disk array controller 3 only by accessing the disk array controller connected to itself directly. This is why a plurality of disk array controllers 3 can be operated integrally as one apparatus (disk array controller).
However, if a host computer 50 is to access data that is not stored in any magnetic disk 5 connected to the disk array controller 3 connected directly to itself, the host computer 50 must access the data through a data transfer path 8. In such a case, therefore, the performance of the host computer 50 comes to be degraded significantly. In addition, although it is possible to back up the data in an existing disk array controller through a channel interface unit 11, a server or the like that manages volumes between the new and existing disk array controllers is required to manage those existing and new controllers integrally.
Furthermore, according to the conventional technique shown in FIG. 4, a host computer 50 can access every disk array controller 4 through the interconnection network 23 that uses a switch, so that both new and existing disk array units can be managed together.
However, if a plurality of disk array controllers 4 are to be operated integrally as one apparatus (disk array controller), each switch of the interconnection network 23 is required to have a map for denoting which of the disk array controllers 4 connected thereto stores target data. And, the switch, when receiving an access request from a host computer 50, should be able to analyze the command set in the request and transfer the command to the disk array controller 4 that stores the requested data. In this connection, such a command analysis is required not only in the conventional channel interface unit 11, but also in the switch connected to the channel interface unit 11. Consequently, a transfer delay might occur in that case because of the processing overhead at the switch of the interconnection network 23 more than the case in which each host computer 50 is connected directly to a disk array controller 4 as shown in FIGS. 2 and 3.
According to the conventional technique shown in FIG. 5, a plurality of disk array control units 1-1 are connected to each another through an interconnection network 21 connected to channel interface units 11, disk interface units 12, and shared memory units 13, as well as through an interconnection network 22 connected to channel interface units 11, disk interface units 12, and cache memory units 14. Consequently, each of the host computers 50 connected to the disk array control units 1-1 can send/receive data to/from each of the hard disk drives 5 through the interconnection networks 21 and 22. For example, a channel interface unit, if receiving a data read request from a host computer 50, inquires whether or not the requested data exists from every shared memory unit 13 through the interconnection network 21. The place of requested data is informed to the channel interface unit 11 from the shared memory unit 13. Then, the channel interface 11 gets the requested data from the cache memory unit 14 or the magnetic disk 5 and returns the data to host computer 50.
According to the conventional technique shown in FIG. 5, each disk array control unit 1-1 inquires stored data information from each shared memory unit 13 through the interconnection network 21 and transfers data through the interconnection network 22, so that each host computer 50 can read/write data without knowing where the data is stored actually.
Consequently, even when data sets are transferred between disk array controllers, the conventional technique shown in FIG. 5 that connects a plurality of disk array control units to each another through the interconnection networks 21 and 22 provided in each disk array control unit can be prevented from significant performance degradation more effectively than any of the conventional techniques shown in FIGS. 2 through 4 that connect a plurality of disk array controllers through channel interfaces.
However, in the official gazette of JP-A No. 256003/2001 in which the controller shown in FIG. 5 is disclosed, none of configurations and methods for connecting a new disk array controller to an existing one is disclosed. And, if the interconnection network 23 that uses a switch as shown in FIG. 4 is used to connect an existing disk array controller, it causes a problem as described in the conventional technique shown in FIG. 4.